Feature films are projected at a rate of 24 frames per second. The process of projecting 24 still pictures every second creates the illusion of continuous motion on the screen. In contrast, video formats were designed for cathode ray tube television sets, which work in a completely different manner than film projectors. Televisions create still pictures, line by line, with an electron beam that passes over a phosphor coated screen. When television was first developed, the National Television Standards Committee (NTSC) defined a standard having 480 lines of resolution. In other words, the electron beam was passed over the phosphorous screen from left to right in 480 rows, from top to bottom, of the screen. When televisions were first developed, it was not feasible for the electron bream to scan all 480 rows in a single frame. As a consequence, televisions were initially designed to perform interlacing. With interlacing, every other row is scanned in a first frame and the skipped rows are scanned in the next frame. More recently progressive scan televisions have been developed, which enable all 480 lines to be scanned in each frame. Now with high definition television or “HDTV”, new resolution formats have been developed, such as SMPTE 274M-1995 (1920×1080 resolution) SMPTE 296M-1997 (1280×780 resolution), etc. Regardless of the video resolution used, the frame rate differs than that used by feature films.
Since video and film have different frame rates, a frame rate conversion must be performed before a feature film can be played on a video display. For example with the NTSC format, 30 frames or 60 fields are displayed per second. Thus if only two film frames are recorded for every five frames of video, a video copy of the movie can be created that plays at the correct speed.
With video displays, area flicker is an artifact that becomes visible if the image is not refreshed fast enough. This is particularly irritating with larger displays as the eye is more sensitive to flicker in the peripheral visual regions. To reduce flicker, the display needs to refreshed at a faster rate. A straight forward scheme for up conversion that repeats the same frame more than once is therefore useful for reducing flicker. For example, a conversion from 24 frames per second to 72 frames per second has generally been found to reduce the flicker problem. Unfortunately, the higher frame rate introduces another artifact called “motion judder” when the motion of an object is present in the film.
Motion vectoring is a technique used to alleviate motion judder. With motion vectoring, frames are constructed or predicted from a reference frame using motion vectors and a prediction error. The reference frame can either unidirectional or bidirectional. With unidirectional motion prediction schemes, the predicted picture frame is constructed from a previous reference picture frame using a motion vector and a prediction error. The reference picture frame is typically a previous frame that has been compressed using an intra-frame coding technique. With bidirectional schemes, the predicted frame is constructed from the best matching of either a previous or a future picture frame using either forward or backward motion vectors and a prediction error.
The use of forward and backward motion vectors is problematic for a number of reasons. At the trailing edge of a moving object for example, the newly uncovered area does not have a match in the previous frame. As a result, forward vectors can be computed while backward vectors cannot. At the leading edge of the moving object, previously visible areas are now obscured. Forward vectors can therefore be computed while backward vectors cannot. It would therefore be ideal to compute both forward and backward vectors. Computing both forward and backward vectors, however, is extremely computation intensive and requires a significant amount of data storage.
An apparatus and method for computing forward and backward vectors in patterns to achieve improved horizontal and vertical detail of the video display while reducing data processing and storage overhead.